/**
 * @fileoverview Contiene la clase {Chat}
 * @author folcwine@gmail.com (José Cabo)
 * @author igcogi@gmail.com (Ignacio José Codoñer)
 */
var Chat = new Class(
/**
  @lends Chat#
*/
{
	/**
	@constructs
	*/
	initialize: function(){
		/*
		Mysql connection for server.
		*/
		this.mysql = require('./sql').newMySQLConnection();
		require('./sql.js').loadMethods(this.mysql);
		
		
		this.clients = {};
		this.chats = {};
	}
	/**
	Informa al servidor de que hay un nuevo cliente.
	@public
	@param {Client} client El cliente que se debe conectar al chat.
	*/
	,newClientConnected: function(client){
		this.clients[client.id] = client;
	}
	/**
	Informa al servidor de que hay un cliente existente se ha desconectado.
	@public
	@param {Client} client El cliente que se debe desconectar del servidor.
	*/
	,clientDisconnected: function(client){
		if(client.state == 2) this.chats[ client.idchat ].clientDisconnected(client);
		delete this.clients[client.id];
	}
});

var chat = new Chat();
require('./extensions.js').iniExt(chat);

exports.getChat = function(){
	return chat;
}
